home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / kernel / dev / sun4.md / devInt.h < prev    next >
C/C++ Source or Header  |  1992-12-18  |  3KB  |  84 lines

  1. /*
  2.  * devInt.h --
  3.  *
  4.  *    Internal globals and constants needed for the dev module.
  5.  *
  6.  * Copyright 1989 Regents of the University of California
  7.  * Permission to use, copy, modify, and distribute this
  8.  * software and its documentation for any purpose and without
  9.  * fee is hereby granted, provided that the above copyright
  10.  * notice appear in all copies.  The University of California
  11.  * makes no representations about the suitability of this
  12.  * software for any purpose.  It is provided "as is" without
  13.  * express or implied warranty.
  14.  *
  15.  * $Header: /cdrom/src/kernel/Cvsroot/kernel/dev/sun4.md/devInt.h,v 9.3 91/10/18 01:21:36 dlong Exp $ SPRITE (Berkeley)
  16.  */
  17.  
  18. #ifndef _DEVINT
  19. #define _DEVINT
  20.  
  21. #include "vm.h"
  22.  
  23.  
  24. /*
  25.  * A configuration table that describes the controllers in the system.
  26.  */
  27. typedef struct DevConfigController {
  28.     char *name;        /* Identifying string used in print statements */
  29. #ifdef sun4c
  30.     char *dev_name;    /* String to match in PROM dev tree */
  31. #endif
  32.     int address;    /* The address of the controller.  Correct
  33.              * interpretation of this depends on the space */
  34. #ifndef sun4c
  35.     int space;        /* DEV_MULTIBUS, DEV_VME_16D16, ...
  36.              * This is used to convert what the hardware thinks
  37.              * is its address to what the MMU of the system
  38.              * uses for those kinds of addresses.  For example,
  39.              * Sun2's have Multibus memory mapped into a
  40.              * particular range of kernel virtual addresses. */
  41. #endif
  42.     int controllerID;    /* Controller number: 0, 1, 2... */
  43.     ClientData (*initProc) _ARGS_((struct DevConfigController *ctrlLocPtr));
  44.             /* Initialization procedure */
  45.     int vectorNumber;    /* Vector number for autovectored architectures */
  46.     Boolean (*intrProc) _ARGS_((ClientData  clientData));
  47.             /* Interrupt handler called from autovector */
  48. } DevConfigController;
  49.  
  50. /*
  51.  * Definitions of address space types.
  52.  * DEV_OBMEM    - on board memory
  53.  * DEV_OBIO    - on board I/O devices.
  54.  * DEV_MULTIBUS - the Multibus memory on the Sun2
  55.  * DEV_MULTIBUS_IO - Multibus I/O space on the Sun2
  56.  * DEV_VME_DxAx - The 6 sets of VME address spaces available on
  57.  *    Sun3's.  Only D16A24 and D16A16 are available on VME based Sun2's.
  58.  */
  59. #define DEV_OBMEM    0
  60. #define DEV_OBIO    1
  61. #define DEV_MULTIBUS    22
  62. #define DEV_MULTIBUS_IO    23
  63. #define DEV_VME_D16A32    31
  64. #define DEV_VME_D16A24    32
  65. #define DEV_VME_D16A16    33
  66. #define DEV_VME_D32A32    34
  67. #define DEV_VME_D32A24    35
  68. #define DEV_VME_D32A16    36
  69.  
  70. /*
  71.  * Special valued returned from Controller init procedures indicating 
  72.  * the controller doesn't exists.
  73.  */
  74.  
  75. #define    DEV_NO_CONTROLLER    ((ClientData) 0)
  76.  
  77. /*
  78.  * The controller configuration table.
  79.  */
  80. extern DevConfigController devCntrlr[];
  81. extern int devNumConfigCntrlrs;
  82.  
  83. #endif /* _DEVINT */
  84.